/* 有弹窗的页面的进入编辑页面前的逻辑
 * dependence - btnLoadingMixin
 * 使用Id获取数据时需要提供 - currentGetDataApi - 当前获取数据接口
-------------------------- */
const dialogBeforeEditMixin = {
  data () {
    return {
      showDialogByToggle: false, // 通过切换boo值打开弹窗

      editData: {}, // 编辑时需要的数据
      editId: '' // 通过接口获取时需要的id
    }
  },
  methods: {
    // 直接获取编辑时需要的数据
    getData (data) {
      this.editData = { ...data }
      this._showDialog()
    },
    // 先获取id再通过接口获取详情
    getDataById (id, index) {
      this.editId = id
      this.AsyncLoading('编辑', index, this.getDataApi)
    },
    // 获取数据接口
    async getDataApi () {
      const [ err, res ] = await this.currentGetDataApi()
      if (err) return this.$message.error('操作失败')
      this.editData = res
      this._showDialog()
    },
    // 显示弹窗
    _showDialog () {
      this.showDialogByToggle = !this.showDialogByToggle
    }
  }
}

export default dialogBeforeEditMixin
